Expert systems are often used to solve problems in fields involving large number of interacting rules. An example of expert system could be a medical system specifying the symptoms of a patient with possible diagnoses. The collection of rules called a rule base, or also referred to as a knowledge base, is typically written by domain specialists, such as doctors, working in conjunction with knowledge engineers. Integrated development tools, software lifecycle tools, and database tools are used to help manage and control rules and collections of rules at various stages of development. Most of these tools are designed for the development of other types of software module such as application software, database applications, and services.
For complex and wide deployment of rule bases in expert systems, more advanced and specialized rule bases often evolve from the initial versions. Such proliferation of rule bases entails corresponding complexity in the supporting tools to manage, search, sort, compare, categorize, and audit rules and collections of rules. Metadata such as keywords, annotation, versioning, and other edit-time and static-time properties can be attached to aid in these tasks. However, such metadata fails to take into account property values that are dynamic in nature. For example, property values that depend on the values of rule base fields that are inferred from a subset of the rules in the rule base or computed through external code resources and web services.